package com.bluemor.reddotface.activity;
import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import com.bluemor.reddotface.R;
import com.bluemor.reddotface.util.Callback;
import com.bluemor.reddotface.util.Invoker;
import com.bluemor.reddotface.util.Util;
import com.nostra13.universalimageloader.core.ImageLoader;
public class ImageActivity extends Activity {
private RelativeLayout rl;
private ImageView iv;
private TextView tv;
private EditText et;
private SeekBar sb1;
private SeekBar sb2;
private String path;
private ProgressDialog pd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image);
initView();
iv.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {
@SuppressWarnings("deprecation")
@Override
public void onGlobalLayout() {
iv.getLayoutParams().height = iv.getWidth();
iv.getViewTreeObserver().removeGlobalOnLayoutListener(
this);
}
});
}
private void initView() {
path = getIntent().getStringExtra("path");
rl = (RelativeLayout) findViewById(R.id.rl);
iv = (ImageView) findViewById(R.id.iv);
tv = (TextView) findViewById(R.id.tv);
et = (EditText) findViewById(R.id.et);
sb1 = (SeekBar) findViewById(R.id.sb1);
sb2 = (SeekBar) findViewById(R.id.sb2);
ImageLoader.getInstance().displayImage("file://" + path, iv);
sb1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
int padding = 200 - progress;
iv.setPadding(padding, padding, padding, padding);
iv.invalidate();
}
});
sb2.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
tv.setTextSize(30 + progress);
}
});
et.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
tv.setText(s.toString());
}
});
}
private Bitmap bmp;
public void onSave(View v) {
new Invoker(new Callback() {
@Override
public boolean onRun() {
return Util.saveImageToGallery(getApplicationContext(), bmp,
path.endsWith(".png"));
}
@Override
public void onBefore() {
pd = new ProgressDialog(ImageActivity.this);
pd.setCancelable(false);
pd.show();
bmp = Util.convertViewToBitmap(rl);
}
@Override
public void onAfter(boolean b) {
if (b) {
Util.t(getApplicationContext(), "保存成功");
pd.dismiss();
finish();
} else {
Util.t(getApplicationContext(), "保存失败");
pd.dismiss();
}
}
}).start();
}
}